package hibernate.model;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;

import javax.persistence.CascadeType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import org.hibernate.annotations.NamedQueries;
import org.hibernate.annotations.NamedQuery;

@SuppressWarnings("serial")
@Entity
@Table(name = "aygit", catalog = "emmy")
@NamedQueries({ @NamedQuery(name = "findAygitUretici", query = "from Aygit where ureticiid = :auretici") })
public class Aygit implements java.io.Serializable {

	private Long aygitid;
	private Sirketprofil sirketprofil;
	private String aygitTuru;
	private String marka;
	private String model;
	private Buzdolabi buzdolabi;
	private Klima klima;
	private Set<Bekleyenhatalistesi> bekleyenhatalistesis = new HashSet<Bekleyenhatalistesi>(0);
	private Set<Resimler> resimlers = new HashSet<Resimler>(0);
	private Telefon telefon;
	private Set<Dokumanlar> dokumanlars = new HashSet<Dokumanlar>(0);
	private Tv tv;
	private Set<Musteriaygitlari> musteriaygitlaris = new HashSet<Musteriaygitlari>(0);
	private Set<Yorumlar> yorumlars = new HashSet<Yorumlar>(0);
	private Set<Hatacozumu> hatacozumus = new HashSet<Hatacozumu>(0);
	private Bellekler bellekler;
	private Mp3ipod mp3ipod;
	private Set<Aygityazilimlari> aygityazilimlaris = new HashSet<Aygityazilimlari>(0);

	public boolean equals(Object object) {
        return (object instanceof Aygit) && (aygitid != null) 
             ? aygitid.equals(((Aygit) object).aygitid) 
             : (object == this);
    }
	
	public Aygit() {
	}

	public Aygit(Sirketprofil sirketprofil, String aygitTuru, String marka,
			String model) {
		this.sirketprofil = sirketprofil;
		this.aygitTuru = aygitTuru;
		this.marka = marka;
		this.model = model;
	}

	public Aygit(Sirketprofil sirketprofil, String aygitTuru, String marka,
			String model, Buzdolabi buzdolabi, Klima klima,
			Set<Bekleyenhatalistesi> bekleyenhatalistesis,
			Set<Resimler> resimlers, Telefon telefon,
			Set<Dokumanlar> dokumanlars, Tv tv,
			Set<Musteriaygitlari> musteriaygitlaris, Set<Yorumlar> yorumlars,
			Set<Hatacozumu> hatacozumus, Bellekler bellekler, Mp3ipod mp3ipod,
			Set<Aygityazilimlari> aygityazilimlaris) {
		this.sirketprofil = sirketprofil;
		this.aygitTuru = aygitTuru;
		this.marka = marka;
		this.model = model;
		this.buzdolabi = buzdolabi;
		this.klima = klima;
		this.bekleyenhatalistesis = bekleyenhatalistesis;
		this.resimlers = resimlers;
		this.telefon = telefon;
		this.dokumanlars = dokumanlars;
		this.tv = tv;
		this.musteriaygitlaris = musteriaygitlaris;
		this.yorumlars = yorumlars;
		this.hatacozumus = hatacozumus;
		this.bellekler = bellekler;
		this.mp3ipod = mp3ipod;
		this.aygityazilimlaris = aygityazilimlaris;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "aygitid", unique = true, nullable = false)
	public Long getAygitid() {
		return this.aygitid;
	}

	public void setAygitid(Long aygitid) {
		this.aygitid = aygitid;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "ureticiid", nullable = false)
	public Sirketprofil getSirketprofil() {
		return this.sirketprofil;
	}

	public void setSirketprofil(Sirketprofil sirketprofil) {
		this.sirketprofil = sirketprofil;
	}

	@Column(name = "aygitTuru", nullable = false, length = 50)
	public String getAygitTuru() {
		return this.aygitTuru;
	}

	public void setAygitTuru(String aygitTuru) {
		this.aygitTuru = aygitTuru;
	}

	@Column(name = "marka", nullable = false, length = 40)
	public String getMarka() {
		return this.marka;
	}

	public void setMarka(String marka) {
		this.marka = marka;
	}

	@Column(name = "model", nullable = false, length = 40)
	public String getModel() {
		return this.model;
	}

	public void setModel(String model) {
		this.model = model;
	}

	@OneToOne(fetch = FetchType.EAGER, mappedBy = "aygit", cascade = CascadeType.REMOVE)
	public Buzdolabi getBuzdolabi() {
		return this.buzdolabi;
	}

	public void setBuzdolabi(Buzdolabi buzdolabi) {
		this.buzdolabi = buzdolabi;
	}

	@OneToOne(fetch = FetchType.EAGER, mappedBy = "aygit", cascade = CascadeType.REMOVE)
	public Klima getKlima() {
		return this.klima;
	}

	public void setKlima(Klima klima) {
		this.klima = klima;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "aygit")
	public Set<Bekleyenhatalistesi> getBekleyenhatalistesis() {
		return this.bekleyenhatalistesis;
	}

	public void setBekleyenhatalistesis(
			Set<Bekleyenhatalistesi> bekleyenhatalistesis) {
		this.bekleyenhatalistesis = bekleyenhatalistesis;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "aygit", cascade = CascadeType.ALL)
	public Set<Resimler> getResimlers() {
		return this.resimlers;
	}

	public void setResimlers(Set<Resimler> resimlers) {
		this.resimlers = resimlers;
	}

	@OneToOne(fetch = FetchType.EAGER, mappedBy = "aygit", cascade = CascadeType.REMOVE)
	public Telefon getTelefon() {
		return this.telefon;
	}

	public void setTelefon(Telefon telefon) {
		this.telefon = telefon;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "aygit")
	public Set<Dokumanlar> getDokumanlars() {
		return this.dokumanlars;
	}

	public void setDokumanlars(Set<Dokumanlar> dokumanlars) {
		this.dokumanlars = dokumanlars;
	}

	@OneToOne(fetch = FetchType.EAGER, mappedBy = "aygit", cascade = CascadeType.REMOVE)
	public Tv getTv() {
		return this.tv;
	}

	public void setTv(Tv tv) {
		this.tv = tv;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "aygit")
	public Set<Musteriaygitlari> getMusteriaygitlaris() {
		return this.musteriaygitlaris;
	}

	public void setMusteriaygitlaris(Set<Musteriaygitlari> musteriaygitlaris) {
		this.musteriaygitlaris = musteriaygitlaris;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "aygit")
	public Set<Yorumlar> getYorumlars() {
		return this.yorumlars;
	}

	public void setYorumlars(Set<Yorumlar> yorumlars) {
		this.yorumlars = yorumlars;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "aygit")
	public Set<Hatacozumu> getHatacozumus() {
		return this.hatacozumus;
	}

	public void setHatacozumus(Set<Hatacozumu> hatacozumus) {
		this.hatacozumus = hatacozumus;
	}

	@OneToOne(fetch = FetchType.EAGER, mappedBy = "aygit", cascade = CascadeType.REMOVE)
	public Bellekler getBellekler() {
		return this.bellekler;
	}

	public void setBellekler(Bellekler bellekler) {
		this.bellekler = bellekler;
	}

	@OneToOne(fetch = FetchType.EAGER, mappedBy = "aygit", cascade = CascadeType.REMOVE)
	public Mp3ipod getMp3ipod() {
		return this.mp3ipod;
	}

	public void setMp3ipod(Mp3ipod mp3ipod) {
		this.mp3ipod = mp3ipod;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "aygit")
	public Set<Aygityazilimlari> getAygityazilimlaris() {
		return this.aygityazilimlaris;
	}

	public void setAygityazilimlaris(Set<Aygityazilimlari> aygityazilimlaris) {
		this.aygityazilimlaris = aygityazilimlaris;
	}
}